The ubiquity of Internet connectivity and the unprecedented growth in network access bandwidth have been fueling the demand for more versatile forms of on-line content. Currently, video is one of the most bandwidth-demanding forms of on-line content. Traditionally, video is broadcast over cable programming networks and successful delivery of high-quality video over an Internet connection is subject to several service constraints. Recent technologies, such as ADSL, VDSL, direct Ethernet connection, and WLAN, have largely removed the access bandwidth bottleneck. Server overloading and network congestion, however, can still pose potential service constraints.
Peer-to-peer overlay (P2P) networks have attracted growing interest as one solution to delivering video content. A P2P network operates over a conventional network-layer infrastructure, such as the Internet, and peer nodes are “aware” of the states of other peer nodes. Content delivery is not undertaken by one particular server. Instead, a group of peer nodes directly exchange data or services among themselves. Thus, P2P networks provide a favorable environment for delivering streaming data, such as video, because server overloading is avoided and network congestion is reduced. P2P networks also scale gracefully as the number of users increases.
P2P applications for streaming content delivery typically use a sliding-window buffering mechanism to ensure smooth playback. The use of a buffer, however, can cause startup latency, which can be significant if the buffer size is large, or if the network condition is poor. A lack of inter-peer-node synchronization can also cause delay and deteriorate streaming quality. A requesting peer node typically requests data from partner peer nodes to fill the buffer in the same order as the data arrives at the partner peer node. The requesting peer node requests the earliest available data for the streaming content first. While the requesting peer node is receiving the requested content, the sending peer node might have to advance its sliding-window buffer to receive other incoming content from the P2P network. As a result, the requesting peer node could experience a time lag with the received content, because the latest received content at the receiving peer node is always lagging behind the latest available content at the sending peer node due to the delay incurred in the data transfer.
Moreover, when content is copied and shared multiple times, the accumulated time lag can be significant and prevent real-time streaming. The accumulated lack of synchronization among different peer nodes can further impair a P2P network's ability to share data because the content commonly shared in peer nodes' buffers can be significantly reduced due to the sliding windows.
Hence, a need arises for a system and method for buffering real-time streaming content in a P2P network while minimizing lag time experienced by the peer nodes sharing common content.